home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / terms / kermit / b / ikmker.mss < prev    next >
Encoding:
Text File  |  1992-09-29  |  18.7 KB  |  545 lines

  1. @Part(MUSICKERMIT,root="kuser")
  2. @string(-musicversion="4.2.0")
  3. @string(-musicdate="90/3/13")
  4. @Chapter<IBM MUSIC/SP KERMIT>
  5. @Begin<Description,Leftmargin +15,Indent -15,spread 0>
  6. @i(Program:)@\John Chandler (Harvard/Smithsonian Center for
  7. Astrophysics); contributions from
  8. Pierre Goyette (McGill U),
  9. Va@ccd()e Kundak@ccd()i and
  10. Daphne Tzoar (Columbia U),
  11. Bob Shields (U. Maryland),
  12. Greg Small (UC Berkeley), Clark Frazier (Harvard Bus. Sch.),
  13. Bob Bolch and Steve Blankinship (Triangle),
  14. Andr@eac() Pirard (U. Li@egr()ge)
  15.  
  16. @i(Language:)@\IBM/370 Assembler
  17.  
  18. @i(Documentation:)@\Pierre Goyette
  19.  
  20. @i(Version:)@\@value(-musicversion) (@value<-musicdate>)
  21.  
  22. @i(Date: )@\1990 March
  23. @end<Description>
  24.  
  25. @subheading<Kermit-MUSIC Capabilities At A Glance:>
  26. @begin<format,leftmargin +2,above 1,below 1>
  27. @tabclear()@tabset(3.5inches,4.0inches)
  28. Local operation:@\No
  29. Remote operation:@\Yes
  30. Transfers text files:@\Yes
  31. Transfers binary files:@\Yes
  32. Wildcard send:@\Yes
  33. @q(^X/^Z) interruption:@\Yes (through micro)
  34. Filename collision avoidance:@\Yes
  35. Can time out:@\Yes (line mode only)
  36. 8th-bit prefixing:@\Yes
  37. Repeat count prefixing:@\Yes
  38. Alternate block checks:@\Yes
  39. Terminal emulation:@\No
  40. Communication settings:@\No
  41. Transmit BREAK:@\No
  42. Packet logging:@\Yes
  43. Transaction logging:@\Yes
  44. Session logging:@\No
  45. Raw transmit:@\Yes (no prompts)
  46. Sliding window:@\No
  47. Long packets:@\Yes
  48. Act as server:@\Yes
  49. Talk to server:@\Yes
  50. Advanced server functions:@\Yes
  51. Advanced commands for servers:@\Yes
  52. Local file management:@\Yes
  53. Handle Attribute Packets:@\Yes
  54. Command/init files:@\Yes
  55. Command macros:@\No
  56. @end<format>
  57.  
  58. @subheading<MUSIC Specifics of Kermit-370:>
  59. @begin<format,leftmargin +2,above 1,below 1>
  60. @tabclear()@tabset(3.5inches,4.0inches)
  61. Global INIT file:@\@q(SYSTEM.KERMINI)
  62. User INIT file:@\@q(KERMIT.INI)
  63. Debug packet log:@\@q(KERMIT.LOG)
  64. Server reply log:@\@q(KERMIT.REPLY)
  65. Maximum packet size:@\1913 (7171), 230 (TTY)
  66. Maximum disk LRECL:@\32767
  67. @end<format>
  68.  
  69. @Index(IBM)
  70. @Index(MUSIC/SP)@Index(TTY)@Index(Series/1)
  71. Kermit-MUSIC is a member of the generic Kermit-370 family
  72. and shares most of the features and capabilities of the group.
  73. As its name implies, Kermit-MUSIC is the
  74. variant of Kermit-370 that runs under the MUSIC/SP operating system.
  75. The primary documentation for Kermit-MUSIC is actually
  76. the chapter on Kermit-370 (entitled IBM 370 Kermit), which
  77. describes general properties; the present chapter assumes the
  78. reader is familiar with that material.
  79. Only the details specific to MUSIC operation will
  80. be discussed here, e.g., command syntax relating to the
  81. MUSIC file system or commands not offered in general by Kermit-370.
  82.  
  83. @Section<The MUSIC/SP File System>
  84.  
  85. The features of the MUSIC file system of greatest interest to Kermit
  86. users are the format of file specifications (or @i<filespecs>)
  87. and the concept of records.
  88. The latter is described in the Kermit-370 chapter.
  89.  
  90. The MUSIC @i<filespec> (called a Save File) takes the form
  91. @example<[code:]filename>
  92. The filename can be up to 17 characters in length and consists of one or
  93. more substrings joined by periods.  The substrings can contain
  94. any of the following characters:
  95. @example(A through Z, 0 through 9, national characters # $ @@)
  96. The only restriction is that the first substring must start with a
  97. letter or a national character.
  98. You may also prefix the filename with a 4-digit code if you
  99. have enough privileges.
  100. @Index(Default Code)
  101. By default, the "working directory" will be set to the your
  102. signon code.
  103. All files on this code can be accessed directly.
  104. If you have enough privileges and wish to transfer files
  105. to or from a MUSIC code other than your signon code, you may
  106. change the "working directory" to the new code.
  107.  
  108. @Index(Wildcards)
  109. MUSIC/SP allows a group of files to be specified in a single
  110. @i(filespec) by including the special "wildcard" characters
  111. @qq<*> and @qq<?>.
  112. A @qq<*> matches any string of characters (even a null
  113. string) from the current position to the end of the field;
  114. a @qq<?> matches any single character.
  115. It is important to remember that the period is part of the filename.
  116. Unlike a PC, the file specification @qq<*> will
  117. match all filenames.
  118. Here are some examples:
  119.  
  120. @Begin(Description,spread 0.5,leftmargin +14, indent -12)
  121. @q<*.COBOL>@\All files of that end with @q<.COBOL>
  122.  
  123. @q<F*>@\All files whose names start with F.
  124.  
  125. @q<?>@\All files with one-character filename.
  126. @End(Description)
  127.  
  128. MUSIC files, like those in other IBM 370 systems, are record-oriented
  129. (see the introduction to the Kermit-370 chapter).
  130. In particular, MUSIC files are characterized by record
  131. format (RECFM), which may be fixed-length or varying-length,
  132. and by maximum record length (LRECL).
  133. The size of record blocks is irrelevant, however,
  134. because MUSIC performs the blocking and deblocking operations
  135. automatically and transparently, including the spanning of records
  136. across block boundaries.
  137. Records in MUSIC files may be up to 32767 bytes long.
  138. A third record format, namely, undefined-length, is possible in MUSIC,
  139. but is rarely used and is not supported by Kermit-MUSIC at present.
  140.  
  141. Another file system feature of occasional interest is the means of
  142. reporting errors.
  143. When Kermit-MUSIC encounters a disk error, it attempts to prepare
  144. an explanatory message for inclusion in the STATUS report.
  145. The explanations can be found in the MUSIC reference manual under the
  146. MFIO Error Codes section.
  147. @Index(Error codes)
  148.  
  149. @section<Program Operation>
  150.  
  151. @Index(Initialization files)
  152. At startup time, Kermit-MUSIC looks for two initialization
  153. files, @q(*COM:SYSTEM.KERMINI) and @q(KERMIT.INI).
  154. If either of or both of these files exist,
  155. they will be read and executed.
  156. If they do not exist on your code, Kermit will still attempt to locate
  157. the public verion of the system file.
  158. The file @q(SYSTEM.KERMINI) should be saved as a PUBLIC file
  159. by a systems programmer, preferably the same code where
  160. the Kermit executable module is kept.
  161. The file @q(KERMIT.INI) can be maintained by the user on any code.
  162.  
  163. One important distinction between Kermit-MUSIC and other Kermits
  164. is that a program running under MUSIC/SP is unable to
  165. interrupt a read on the terminal
  166. if you are connected through a 7171 or
  167. Series/1 protocol converter.
  168. This means that the MUSIC variant of Kermit cannot
  169. time out after sending a packet on such devices.
  170. The only way to time out is from the other side:
  171. typing a carriage return to the local Kermit causing it to retransmit
  172. its last packet, or an automatic timeout as provided by most other
  173. Kermits.
  174.  
  175. @Index(TTY)@Index(Flow control)@Index(Handshake)
  176. If you are connecting to MUSIC through a 7171 or @q(Series/1)
  177. protocol converter, then no handshaking is required since
  178. Kermit-MUSIC can control the data sent to the micro Kermit.
  179. But if you are connected as a @qq(TTY) terminal (through a 370x
  180. type line), then you must enable handshaking on the micro Kermit.
  181. This is because the MUSIC/SP system will add an XON (X'11')
  182. character to the end of every packet sent.
  183. The micro Kermit must not reply with the next packet before
  184. the XON character is received.
  185. Usually the command @qq(SET HANDSHAKE XON) or @qq(SET HANDSHAKE 17)
  186. on the micro Kermit will do this.
  187.  
  188. @subheading(Interactive Operation:)
  189.  
  190. To run Kermit-MUSIC interactively, invoke the program from MUSIC by
  191. typing @q<KERMIT>.
  192. When you see the prompt,
  193. @example(Kermit-MUSIC>)
  194. you may type a Kermit subcommand.
  195. When the subcommand completes, Kermit issues another prompt.
  196. The cycle repeats until you exit from the program.
  197. For example:
  198. @Begin(Example)
  199. @ux(KERMIT)
  200.  
  201. Kermit-MUSIC Version @value(-musicversion) (@value<-musicdate>)
  202. Enter ? for a list of valid commands
  203.  
  204. Kermit-MUSIC>@ux(send foo.*)
  205.  
  206.   @i(Files with prefix FOO. are sent)
  207.  
  208. Kermit-MUSIC>@ux(receive test.spss)
  209.  
  210.   @i(File is received and called TEST.SPSS)
  211.  
  212. Kermit-MUSIC>@ux(exit)
  213. @end(example)
  214.  
  215. @subheading(Command Line Invocation:)
  216.  
  217. Kermit-MUSIC may also be invoked with a command line argument from MUSIC.
  218. The argument is interpreted as a subcommand to be executed
  219. by Kermit after completion of the initialization.
  220. For instance:
  221. @Begin(Example,below 0.5)
  222. @ux(KERMIT send test.fortran)
  223. @End(Example)
  224. or
  225. @Begin(Example,above 0.5)
  226. @ux(KERMIT server)
  227. @End(Example)
  228.  
  229. Kermit will exit and return to MUSIC after completing the specified
  230. subcommand.
  231.  
  232. @subheading(Server mode:)
  233.  
  234. Command execution in server mode is different in several respects
  235. from normal operation.  First of all, some Kermit subcommands
  236. are not allowed (see the list of subcommands in the Kermit-370 chapter).
  237. Moreover, command errors always terminate any active TAKE file.
  238.  
  239. @Section<Kermit-MUSIC Subcommands>
  240.  
  241. Kermit-MUSIC supports all the subcommands described in the Kermit-370
  242. chapter, plus one more: @qq(MUSIC), which is a synonym for the generic
  243. subcommand @qq(HOST).
  244. This section concentrates on
  245. the subcommands that have special form or meaning for Kermit-MUSIC.
  246. These are ordered alphabetically.
  247. See the chapter on Kermit-370 for further details.
  248.  
  249. @Heading(The CWD Subcommand)
  250. @Index(Default Code)@Index(CWD)
  251.  
  252. Syntax:@q< CWD @i(code)>
  253.  
  254. The CWD (Change Working Directory)
  255. subcommand establishes a new default code.
  256. @i(code) may be any valid 4-digit MUSIC code.
  257. Subsequent file transfers take place preferentially to
  258. and from the default code.
  259. The initial code is the user's signon code.
  260.  
  261. @Heading(The DIRECTORY Subcommand)
  262. @Index(DIRECTORY)
  263.  
  264. Syntax:@q< DIRECTORY [@i(filespec)]>
  265.  
  266. Under Kermit-MUSIC, the DIRECTORY subcommand is similar
  267. to the MUSIC LIBRARY command.
  268. DIRECTORY will also display the number of lines in a file.
  269.  
  270. @Heading(The HELP Subcommand)
  271. @Index(HELP)
  272.  
  273. Syntax:@q< HELP>
  274.  
  275. This subcommand displays information on the use of Kermit-MUSIC.
  276.  
  277. @Heading(The MUSIC Subcommand)
  278.  
  279. Syntax:@q< MUSIC  @i(text of command)>
  280.  
  281. Currently, MUSIC does not support the execution of host commands
  282. under Kermit-MUSIC.
  283. However, the MUSIC commands LIBRARY, PURGE, RENAME, COPY, and LIST
  284. are simulated by Kermit itself, thus providing a set of
  285. subcommands for managing
  286. local files.  The subcommand MUSIC is synonymous with the generic
  287. subcommand HOST.
  288.  
  289. @Heading<The RECEIVE Subcommand>
  290.  
  291. @Index(RECEIVE)
  292. Syntax:@q< RECEIVE [@i(filespec)]>
  293.  
  294. The RECEIVE subcommand tells Kermit to receive a file or file group
  295. from the other system.
  296. You should then issue a SEND subcommand to the other Kermit.
  297.  
  298. If the optional @i(filespec) is omitted, Kermit-MUSIC will use the
  299. name(s) provided by the other Kermit.
  300. If that name is not a legal MUSIC file name, Kermit-MUSIC will
  301. delete excess characters and will change illegal characters to
  302. dollar signs.
  303. A @i(filespec) in the subcommand indicates what name the incoming file
  304. should be given.
  305. Wildcards may not be used.
  306. If the optional @i(filespec) is provided,
  307. but more than one file arrives, the first file will be stored under
  308. the given @i(filespec), and the remainder will be stored under
  309. their own names on the default code.
  310.  
  311. For purposes of folding and truncation, the maximum record length for
  312. a received file is 32767 if RECFM is V and "LRECL" if RECFM is F.
  313. @Index(Truncation)@Index(Folding)
  314.  
  315. @Index(Filename collision)
  316. If the incoming file has the same name as an existing file, the action
  317. taken depends on the FILE COLLISION setting.  The possible settings
  318. and their meanings are given in the Kermit-370 chapter.  Two of the
  319. settings (BACKUP and RENAME) require that
  320. Kermit-MUSIC change the incoming name
  321. so as not to obliterate the pre-@|existing file.
  322. It attempts to find a unique name by successively modifying
  323. the original and checking for the existence of such a file at each step.
  324. The procedure begins by truncating the filename to fifteen
  325. characters if necessary, and then appending @qq($0).
  326. If a file by that name exists, Kermit then replaces the @qq(0)
  327. with a @qq(1).
  328. It continues in this manner up to @qq(9), and if an unused name cannot
  329. be found, the transfer fails.
  330.  
  331. @Heading<The SEND Subcommand>
  332. @Index(SEND)
  333.  
  334. Syntax:@q{ SEND [@i(filespec)[<@i(options)>] [@i(foreign-filespec)]][, ...]}
  335.  
  336. The SEND subcommand causes a file or file group to be sent from MUSIC
  337. to the Kermit on the other system.
  338. Kermit-MUSIC will remove any code prefix for the file header of the
  339. outgoing file.
  340. @Index(Wildcards)
  341. The @i(filespec) may contain the wildcard characters @qq<*> or @qq<?>.
  342. If it does, then all matching
  343. files will be sent.  For details on the @i(options), see the chapter on
  344. Kermit-370.  There must be no blanks between the @i(filespec) and the
  345. @i(options), if any.
  346.  
  347. The @i(foreign-filespec), if any, is used for the file header of the
  348. outgoing file, replacing the usual filename copied from the
  349. MUSIC @i(filespec).
  350. If wildcards are present in the @i(filespec),
  351. then no @i(foreign-filespec) should be specified.
  352.  
  353. @Heading<The SET Subcommand>
  354. @Index(SET)
  355.  
  356. Syntax:@q< SET @i(parameter) [@i(value)]>
  357.  
  358. The SET subcommand establishes or modifies various
  359. parameters controlling file transfers.
  360. The following SET parameters are available in Kermit-MUSIC,
  361. but not in Kermit-370 in general:
  362. @Begin(Format,spread 0)
  363. @tabclear()@tabset(2.0inches)
  364. DELIM@\Line delimiter for entering multiple commands.
  365. DESTINATION@\Default Code.
  366. FILE
  367.   LRECL@\Logical Record length for incoming file.
  368.   RECFM@\Record format for incoming files.
  369. @End(format)
  370.  
  371. @Subheading(SET DELIM)
  372.  
  373. Syntax:@q< SET DELIM [@i(letter)]>
  374.  
  375. @Index(Line delimiter)
  376. This sets (or clears) a command line delimiter for interactive
  377. Kermit subcommands.  Each occurrence of the delimiter character in
  378. the command buffer read from the terminal is treated as the start of
  379. a new subcommand.  The initial value is a blank, i.e., no delimiter.
  380.  
  381. @Subheading<SET DESTINATION>
  382. @Index(Default Code)
  383.  
  384. Syntax:@q< SET DESTINATION @i(code)>
  385.  
  386. This subcommand is equivalent to the CWD subcommand (@i[q.v.]).
  387.  
  388. @Subheading(SET FILE LRECL)
  389.  
  390. Syntax:@q< SET FILE LRECL @i(number)>
  391.  
  392. This sets the logical record length for incoming files to a @i(number)
  393. from 1 to 32767 (32K-1).
  394. This variable is used only for fixed format and binary files.
  395. The default is 80.
  396.  
  397. @Subheading<SET FILE RECFM>
  398.  
  399. Syntax:@q< SET FILE RECFM @i(option)>
  400.  
  401. This subcommand sets the record format to use for incoming files.
  402. Valid @i<options> are "Fixed" and "Variable" (the default).
  403. Fixed-format records are padded, folded, or truncated, as needed,
  404. to the current LRECL.  Note: these two formats correspond to FC and VC
  405. in standard MUSIC nomenclature.  MUSIC formats F, V, and U are not
  406. supported.
  407.  
  408. @Heading(The SPACE Subcommand)
  409. @Index(SPACE)
  410.  
  411. Syntax:@q< SPACE>
  412.  
  413. This subcommand displays the storage allocation on the default code.
  414. The available space is calculated by subtracting the current allocated
  415. space from the total space available to the user's code.
  416.  
  417. @Section<How to build an executable version of Kermit-MUSIC>
  418.  
  419. Before attempting to build Kermit-MUSIC, look in the
  420. Kermit distribution under IKMKER for an
  421. installation document, as well as "beware", help,
  422. and update files, and read them first.
  423. They will probably contain information that is more
  424. current and more detailed than what you see here.
  425.  
  426. Kermit-MUSIC consists at present of a few small jobs that (a)
  427. build GUPI (Generic Update Program), (b) use
  428. GUPI to apply the current fixes to the base code, and (c)
  429. assemble and link
  430. the updated Kermit source.
  431. The source for Kermit and GUPI itself is in many pieces,
  432. some generic for Kermit-370 and some specific to MUSIC.
  433. All the necessary pieces are sequenced in
  434. columns 73-80 so that the numbers form a strictly increasing
  435. sequence when the pieces are correctly "pasted" together.
  436. It is important to preserve the original sequence numbers so that
  437. updates can be applied to the source.
  438.  
  439. To create a runnable version:
  440.  
  441. @begin<format,leftmargin +2,above 1,below 1>
  442. @end<format>
  443. @tabclear()@tabset(3.5inches,4.0inches)
  444.  
  445. @begin(enumerate,spread 0.5)
  446. Collect the following @qq(ASM) files from the Kermit distribution onto
  447. the code $KRM with @q<RECFM FC> and @q<LRECL 80>: IK0DOC, IK0MAC,
  448. IKMMAC, IK0DEF, IK0MAI, IK0COM, IK0CMD, IKMUTL, IK0PRO, IK0GUP,
  449. and IKMGUP.
  450. The files must have an extension of ".S".
  451.  
  452. Assemble and link the Generic Update Program GUPI, producing
  453. @q($KRM:GUPI.LMOD).
  454. Before assembling the GUPI program, you must change the IK0GUP module.
  455. Edit the file $KRM:IK0GUP.S and convert all COPY pseudo-instructions
  456. into macro invocations.
  457. This is easily achieved by removing the word "COPY"
  458. from in front of the copy block's name.
  459. There are only 5 occurences of this and they are all in column 10.
  460. The source for GUPI consists of the combination
  461. IK0MAC, IKMMAC, IKMGUP, and IK0GUP.
  462.  
  463. Build the base Kermit source so that you can apply the
  464. modifications to it.
  465. Merge the source files in the order
  466. IK0DOC, IK0MAC, IKMMAC, IK0DEF, IK0MAI, IK0COM, IK0CMD, IKMUTL, IK0PRO,
  467. and save the result as @q($KRM:KERMIT.BASE.S).
  468.  
  469. Apply the updates using GUPI.  Note: this operation requires a region
  470. of at least 1024K.
  471. The following command will apply the fixes to the source
  472. module $KRM:KERMIT.BASE.S using the update file $KRM:IKMKER.UPD
  473. and save the updated source in $KRM:KERMIT.S.
  474. @example(GUPI $KRM:KERMIT.BASE.S $KRM:IKMKER.UPD $KRM:KERMIT.S)
  475.  
  476. Assemble the Kermit source and
  477. link the object deck together with
  478. MATCH and MFINDX to produce @q($KRM:KERMIT.LMOD).
  479.  
  480. Save the following jobstream in the file $KRM:KERMIT
  481. This will execute the KERMIT program with the proper system
  482. parameters.
  483. @begin<format,leftmargin +2,above 1,below 1>
  484. /SYS NOPRINT,REGION=256
  485. /FILE LMOD N($KRM:KERMIT.LMOD) SHR
  486. /LOAD XMON
  487. KERMIT
  488. @end<format>
  489.  
  490. Kermit-MUSIC requries the LSCAN privilege since it does a
  491. save library scan directly.
  492. You must modify either the system module LOOKUP or the macro
  493. invoked by LOOKUP called $MCM:USERTBL.M.
  494. Add the line
  495. @example<FILNAM '$KRM:KERMIT',(LSCAN,0)>
  496. to either of the two files.
  497. Reassemble the module LOOKUP and make sure that the new
  498. object deck is used when rebuilding the nucleus.
  499. If you do not give Kermit this privilege, the program will
  500. abend on user codes that do not have LSCAN.
  501. @end(enumerate)
  502.  
  503. @Index(Initialization files)@Index(Translation)
  504. Since Kermit-MUSIC drives the I/O directly for both @qq(TTY) and
  505. @qq(SERIES1) devices, your site's
  506. ASCII/EBCDIC translation tables will not affect Kermit-MUSIC
  507. in file transfer mode.
  508.  
  509. @Section<What's New>
  510. Below is a list of the MUSIC-specific updates in Version
  511. @value(-musicversion) of
  512. Kermit-MUSIC added since the previous major release,
  513. Version 4.1, in February 1989.
  514. For a list of generic additions, see
  515. the Kermit-370 chapter.
  516.  
  517. @begin(enumerate,spread 0.5)
  518. Correction of problem in SERIES1-type transfer I/O with large blocks.
  519.  
  520. @end(enumerate)
  521.  
  522. @Section(What's Missing)
  523.  
  524. Work on Kermit-MUSIC will continue.  Features that need to be
  525. improved or added include:
  526. @begin(itemize)
  527. Add support for IBM 3174 AEA transparent mode.
  528.  
  529. Allow timeouts so Kermit-MUSIC does not wait forever if a packet does
  530. not arrive in a timely fashion.  This is not possible under MUSIC at
  531. present for I/O through a protocol converter.
  532.  
  533. Implement file archiving.
  534.  
  535. Support execution of Music commands from Kermit or the remote
  536. Kermit.
  537.  
  538. Add a SET REPEAT subcommand.
  539. @end(itemize)
  540.  
  541. Anyone interested in working on these or other improvements should first
  542. get in touch with the Center for Computing Activities at Columbia
  543. University to find out if someone else has already begun a similar
  544. project (and, if so, who).
  545.